// 百度地图API功能
var map = new BMap.Map("allmap");    // 创建Map实例

var sitesArr = [];
var sitesNames = [];
var timesArr = [];
var currentLineId = 1;

// map.enableAutoResize();//地图自适应容器宽高变化，手动启用
map.centerAndZoom(new BMap.Point(118.102857,24.577551), 12);  // 初始化地图,设置中心点坐标和地图级别
// map.centerAndZoom("厦门",12);      // 初始化地图,用城市名设置地图
// 左上角，添加比例尺
var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});
//左上角，添加默认缩放平移控件
var top_left_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT});
//添加控件和比例尺
map.addControl(top_left_control);
// map.addControl(top_left_navigation);
//可滚轮缩放
map.enableScrollWheelZoom();

// 创建定位控件
var geolocationControl = new BMap.GeolocationControl({
    // 控件的停靠位置（可选，默认左下角）
    anchor: BMAP_ANCHOR_BOTTOM_LEFT,
    // 控件基于停靠位置的偏移量（可选）
    offset: new BMap.Size(15, 90)
});
// 将控件添加到地图上
map.addControl(geolocationControl);

// 添加定位事件
geolocationControl.addEventListener("locationSuccess", function(e){
    // 定位成功事件
    var address = '';
    address += e.addressComponent.province;
    address += e.addressComponent.city;
    address += e.addressComponent.district;
    address += e.addressComponent.street;
    address += e.addressComponent.streetNumber;
    // alert("当前定位地址为：" + address);
    map.setZoom(19);
});
geolocationControl.addEventListener("locationError",function(e){
    // 定位失败事件
    alert(e.message);
});


function getPointArray(points, names) {
    var ps = [];
    for (let i = 0; i < points.length; i++) {
        var p = new BMap.Point(points[i][0], points[i][1]);
        ps.push(p);
        drawPoint(p, names[i]);
    }
    sitesArr = points;
    // sitesArr = ps;
    sitesNames = names;
    console.log("ps--"+ps.length);
    console.log("names"+names);
    return ps;
}

// 绘制marker（起点、经点、终点），添加文本标注
function drawPoint(point, content) {
    var myIcon = new BMap.Icon(root_path+"/resources/img/site.png", new BMap.Size(12, 12), {
        imageOffset: new BMap.Size(0, 0) // 设置图片偏移
    });
    myIcon.setImageSize(new BMap.Size(12, 12));
    let marker = new BMap.Marker(point,{icon:myIcon});
    // marker.enableMassClear();//允许覆盖物在map.clearOverlays方法中被清除
    this.map.addOverlay(marker);
    var label = new BMap.Label(content, {
        offset: new BMap.Size(20, -10)
    });
    label.setStyle({ fontSize : "12px" ,backgroundColor: "rgba(255,255,255,1)",borderColor:"red",borderRadius:"5px",display: "none"});
    label.addEventListener("click", function(){ //点击label隐藏label
        label.setStyle({
            display: "none",
        })
    });
    marker.setLabel(label);

    // map.addEventListener('click', function (e) {
    //     e.point.lng;e.point.lat;
    // });

    // var xArr = [];//存放横坐标
    // var yArr = [];//存放纵坐标
    // map.addEventListener("touchstart", function(e){
    //     //手指触摸屏幕的时候清空两个数组
    //     xArr.length = 0;
    //     yArr.length = 0;
    // });
    //
    // map.addEventListener("touchmove",function(e){
    //     //如果滑动了屏幕，xArr和yArr将各存入两个坐标值，即始末坐标值
    //     xArr.push(e.targetTouches[0].pageX);
    //     yArr.push(e.targetTouches[0].pageY);
    // });
    //
    // map.addEventListener('touchend',function(e){
    //     var far;
    //     var flag = true;
    //     //计算平移距离，区分滑动事件和点击事件
    //     if((xArr.length > 1) && (yArr.length > 1)){
    //         far = (Math.abs(xArr[0]-xArr[1]))^2 + (Math.abs(yArr[0]-yArr[1]))^2;
    //         if(far > 0){
    //             flag = false;
    //         }
    //     }
    //     if(flag){
    //         //获取经纬度
    //         var pt = e.point;
    //         alert(pt.lng+","+pt.lat);
    //     }
    // });

    marker.addEventListener("click", function(){ //点击marker显示label
        label.setStyle({
            display: "block",
        })
    });
}
var polyline = new BMap.Polyline();
function drawPolyLine(pois) {
    var sy = new BMap.Symbol(BMap_Symbol_SHAPE_BACKWARD_OPEN_ARROW, {
        scale: 0.6,//图标缩放大小
        strokeColor: '#fff',//设置矢量图标的线填充颜色
        strokeWeight: '2',//设置线宽
        // anchor: new BMap.Size(10, 30),
    });
    var icons = new BMap.IconSequence(sy,  '100%', '10%',false);

    // 创建polyline对象
    polyline = new BMap.Polyline(pois, {
        enableEditing: false,//是否启用线编辑，默认为false
        enableClicking: false,//是否响应点击事件，默认为true
        // enableMassClear: true,//允许覆盖物在map.clearOverlays方法中被清除
        icons: [icons],
        strokeWeight: '6',//折线的宽度，以像素为单位
        strokeOpacity: 0.7,//折线的透明度，取值范围0 - 1
        strokeColor: "#18a45b"//折线颜色
    });
    map.addOverlay(polyline);          //增加折线
}

function move_and_resize(coors,size) {
    map.centerAndZoom(new BMap.Point(coors[0],coors[1]), size);  // 初始化地图,设置中心点坐标和地图级别
}